#ifndef DEFINE_VEHICLE_DEFINE
#define DEFINE_VEHICLE_DEFINE
#include <QVector>

#define D_STEERING_MAX_COUNT 10

enum E_VEHICLE_STATUS
{
    E_VEHICLE_STATUS_STOPPED,
    E_VEHICLE_STATUS_RUNNING,
    E_VEHICLE_STATUS_ERROR

};

enum E_VEHICLE_MODE
{
    E_VEHICLE_MODE_JOG,
    E_VEHICLE_MODE_AUTO

};


enum E_VEHICLE_TYPE
{
    E_VEHICLE_TYPE_NONE=0,
    E_VEHICLE_TYPE_TWO_DIFFERENTIAL_DRIVE=1,
    E_VEHICLE_TYPE_MCCRUM_3_WHEEL=2,
    E_VEHICLE_TYPE_MCCRUM_4_WHEEL=3,
    E_VEHICLE_TYPE_ONE_STERRING_WHEEL=4,
    E_VEHICLE_TYPE_TWO_STERRING_WHEEL=5


};



struct SensorInfo
{
    QVector<bool> magneticData_front;
    QVector<bool> magneticData_back;
    long long rfidData_front;//负数代表无效设备
    bool isRfidDetected_front;
    long long rfidData_back;//负数代表无效设备
    bool isRfidDetected_back;
    double deltaDistanceX_virtualLine;
    double deltaDistanceY_virtualLine;
    double deltaAngle_virtualLine;
    double forward_x;//m/s ，前馈量
    double forward_y;//m/s ，前馈量
    double forward_r;//rad/s，前馈量
    double absoluteDistance_virtualLine;
    double absoluteAngle_virtualLine;
    bool input;
    QVector<double> steeringAngle;//磁传感器的转角degree
};

enum E_TRACK_LOOP_RESULT
{
    E_TRACK_LOOP_RESULT_NORMAL,
    E_TRACK_LOOP_RESULT_ERROR,
    E_TRACK_LOOP_RESULT_ZERO_HALT,
    E_TRACK_LOOP_RESULT_MOVING_HALT,
};



#endif
